// 排行榜单共享的数据文件
import { HYEventStore } from "hy-event-store"; // 导入 hy-event-store 库

// 导入接口
// 1、getRankings：获取热门歌曲排行接口
import { getRankings } from "../service/api_music";

// 用来存储对应请求 idx 值的变量名
const rankingMap = { 
  0: "newRanking", 
  1: "hotRanking", 
  2: "originRanking", 
  3: "upRanking"
}

// 初始化榜单的状态管理对象
const rankingStore = new HYEventStore({
  state: {
    newRanking: {}, // 0：新歌榜数据
    hotRanking: {}, // 1：热歌榜数据
    originRanking: {}, // 2：原创榜数据
    upRanking: {}, // 3：飙升榜数据
  },
  actions: {
    // 获取热门歌曲排行的请求方法
    getRankingDataAction(ctx) {
      // 0: 新歌榜；1: 热歌榜；2: 原创榜；3：飙升榜
      for(let i = 0; i < 4; i++) {
        getRankings(i).then(res => {
          // 找到对应的变量名
          const rankingName = rankingMap[i];
          // 存储数据到对应的变量名中
          ctx[rankingName] = res.playlist;
        });
      }
    }
  }
});

// 导出
export { 
  rankingMap,
  rankingStore
}
